package main

import (
	"github.com/lazyshot/go-hbase"

	"log"
	"bytes"
	"fmt"
)

func main() {
	client := hbase.NewClient([]string{"yakkety"}, "/hbase")

	put := hbase.CreateNewPut([]byte("1"))
	put.AddStringValue("col", "float2str", fmt.Sprintf("%v",3.1415926))
	res, err := client.Put("test", put)

	if err != nil {
		panic(err)
	}

	if !res {
		panic("No put results")
	}
	log.Println("Completed put")

	get := hbase.CreateNewGet([]byte("test"))
	result, err := client.Get("test", get)

	if err != nil {
		panic(err)
	}

	if !bytes.Equal(result.Row, []byte("test")) {
		panic("No row")
	}

	if !bytes.Equal(result.Columns["col:test_qual"].Value, []byte("test_val")) {
		panic("Value doesn't match")
	}

	log.Println("Completed get")

	results, err := client.Gets("test", []*hbase.Get{get})

	if err != nil {
		panic(err)
	}

	log.Printf("%#v", results)
}

//
//import (
//	"github.com/tsuna/gohbase"
//	"github.com/tsuna/gohbase/hrpc"
//	"context"
//	"log"
//	"fmt"
//)
//
//func main() {
//	client := gohbase.NewClient("yakkety")
//
//	getRequest, err := hrpc.NewGetStr(context.Background(), "test", "1")
//	if err != nil {
//		log.Println(err.Error())
//		return
//	}
//	getRsp, err := client.Get(getRequest)
//	if err != nil {
//		log.Println(err.Error())
//		return
//	}
//
//	values := map[string]map[string][]byte{"col": map[string][]byte{"EventLog": []byte("1540")}}
//	putRequest, err := hrpc.NewPutStr(context.Background(), "test", "1", values)
//	_, err = client.Put(putRequest)
//	if err != nil {
//		log.Println(err.Error())
//		return
//	}
//	fmt.Println("res: ", getRsp.Cells)
//
//}
